package editorsvg.editor.atributos;

import editorsvg.svg.parser.ColorHandleAdapter;
import editorsvg.svg.parser.ColorParser;
import java.awt.Color;
import java.awt.Paint;

/**
 * Representa un atributo tipo pintura.
 * @author Jorge Berjano
 */
public class AtrPintura extends Atributo {
    private Paint paint;
    private boolean none;
            
    public AtrPintura() {
    }    
    
    @Override
    public void parsear(String texto) throws Exception {
        none = false;
        if (texto == null || texto.length() == 0) {
            paint = null;
            return;
        }
        
        ColorParser parser = new ColorParser();
        
        parser.setColorHandler(new ColorHandleAdapter() {
            
            @Override
            public void color(int rgb) {
                AtrPintura.this.paint = new Color(rgb);                
            }

            @Override
            public void id(String id) {
            }

            @Override
            public void invalid(String valor) {   
                paint = null;
            }

            @Override
            public void none() {
                paint = null;
                none = true;                
            }
        });

        parser.parsearColor(texto);
    }
    
    public void setRgb(int rgb) {
        paint = new Color(rgb);
        texto = String.format("#%06X", rgb);
    }
    
    public Paint getValor() {
        return paint;  
    }

    public boolean isNone() {
        return none;
    }
}
